package cloud.lysky.java.on.design_pattern.template_method;

/**
 * @author luoly
 * @describe
 * @date 2022-08-20 10:33
 **/
//模板方法模式
public abstract class OnlineBanking {
    /**
     * processCustomer方法搭建了在线银行算法的框架：获取客户提供的ID，然后提供服务让用户满意。不同的支行可以通过继承OnlineBanking类，对该方法提供差异化的实现
     * @param id
     */
    public void processCustomer(int id){
        Customer customer = DataBase.getCustomerWithId(id);
        makeCustomerHappy(customer);
    }
    abstract void makeCustomerHappy(Customer customer);
}